package jp.co.nes.awssupport.business.constant;

/**
 * CommonInfoBeanに存在する、その他の情報を保持するマップに処理対象年月を設定する際に使用するキー名です。
 */
public enum OtherKeyForTargetYearMonth {

    /** 同月 */
    SAME,

    /** 前月 */
    LAST,

    /** 入力パラメータ */
    INPUT;

    /**
     * CommonInfoBeanに存在する、その他の情報を保持するマップに処理対象年月を設定する際のキー名を返却します。
     *
     * @return CommonInfoBeanに存在する、その他の情報を保持するマップに処理対象年月を設定する際のキー名
     */
    public String getMapKey() {
        StringBuilder builder = new StringBuilder();

        boolean isLowerCase = true;
        String name = name();
        for (int i = 0; i < name.length(); i++) {
            char ch = name.charAt(i);
            if (ch == '_') {
                isLowerCase = false;
            } else {
                if (isLowerCase) {
                    builder.append(Character.toLowerCase(ch));
                } else {
                    builder.append(ch);
                    isLowerCase = true;
                }
            }
        }

        return builder.toString();
    }
}
